#pragma once

#include "Svn.h"

using namespace System;

namespace IronSvn {

	[Serializable]
	public ref class SvnInfo
	{
	public:
		SvnInfo();
		property String^ Path { String^ get(); void set(String^ path); };
		property String^ Url { String^ get(); void set(String^ url); };
		property String^ RepositoryRootUrl { String^ get(); void set(String^ repositoryRootUrl); };
		property String^ RepositoryUuid { String^ get(); void set(String^ repositoryUuid); };
		property long Revision { long get(); void set(long revision); };
		property long LastChangedRevision { long get(); void set(long lastChangedRevision); };
		property SvnNodeKind NodeKind { SvnNodeKind get(); void set(SvnNodeKind nodeKind); };
		property SvnSchedule Schedule { SvnSchedule get(); void set(SvnSchedule schedule); };
		property DateTime^ LastChangedDate { DateTime^ get(); void set(DateTime^ lastChangedDate); };

		virtual String^ ToString() override;
	private:
		String^ m_path;
		String^ m_url;
		String^ m_repositoryRootUrl;
		String^ m_repositoryUuid;
		long m_revision;
		long m_lastChangedRevision;
		SvnNodeKind m_nodeKind;
		SvnSchedule m_schedule;
		DateTime^ m_lastChangedDate;
	};
}
